package cn.edu.wynu.d6_singleInstance;
/*
什么是设计模式(Design pattern)
一个问题通常有n种解法，其中肯定有一种解法是最优的，这个最优的解法被人总结出来了，称之为设计模式
设计模式有20多种，对应20多种软件开发中会遇到的问题。
关于设计模式的学习，主要学什么?
01解决什么问题?
02怎么写?
*/

/*
单例设计模式：
确保一个类只有一个对象。
写法：
把类的构造器私有。
定义一个类变量记住类的一个对象。
定义一个类方法，返回对象。
*/

/*
单例设计模式的实现方式很多：
饿汉式单例:拿对象时，对象早就创建好了。单例对象频繁使用
懒汉式单例:拿对象时，才开始创建对象。单例对象使用不频繁
*/

public class Test1 {
    public static void main(String[] args) {
        // 掌握单例设计模式的写法
        // new A(); // 报错，构造器私有
        A a1 = A.getObject();
        A a2 = A.getObject();
        System.out.println(a1);
        System.out.println(a2);

        // Runtime // 单例模式的应用场景
    }
}
/*
1.什么是设计模式，设计模式主要学什么?单例模式解决了什么问题?
设计模式就是具体问题的最优解决方案。
解决了什么问题?怎么写?
确保一个类只有一个对象。
2.单例怎么写?饿汉式单例的特点是什么?
把类的构造器私有;定义一个类变量存储类的一个对象;提供一个类方法返回对象。
在获取类的对象时，对象已经创建好了。
3.单例有啥应用场景，有啥好处?
任务管理器对象、获取运行时对象，
在这些业务场景下，使用单例模式，可以避免浪费内存，
*/
